#ifndef STICKCONTROL_H
#define STICKCONTROL_H

#include <QObject>
enum FUNCTION_KEY{
    FUNCTION_KEY_NONE = 0,
    FUNCTION_KEY1,
    FUNCTION_KEY2,
    FUNCTION_KEY3,
    FUNCTION_KEY4
};

enum STICK_KEY{
    STICK_KEY_NONE = 0,
    STICK_KEY1,
    STICK_KEY2,
    STICK_KEY3,
    STICK_KEY4,
    STICK_KEY5,
    STICK_KEY6,
    STICK_KEY7,
    STICK_KEY8,
    STICK_KEY9,
    STICK_KEY10,
    STICK_KEY11,
    STICK_KEY12,
    STICK_KEY13,
    STICK_KEY14,
    STICK_KEY15,
    STICK_KEY16,
    STICK_KEY17,
    STICK_KEY18,
    STICK_KEY19,
    STICK_KEY20
};

class StickControl : public QObject
{
    Q_OBJECT
public:
    static  StickControl * getInstance();
    virtual QString getFuncKeyName(FUNCTION_KEY nKey) = 0;
    virtual QString getHotKeyName(STICK_KEY nKey) = 0;

signals:
    void  keyPressed(FUNCTION_KEY nFuncKey, STICK_KEY nKey);
    void  xChanged(float x);
    void  yChanged(float y);
    void  uChanged(float u);
    void  rChanged(float r);
    void  zChanged(float z);

protected:
    explicit StickControl(QObject *parent = nullptr);
private:
    static StickControl * m_pInstance;
};

#endif // STICKCONTROL_H
